package com.qf.util;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.stereotype.Component;

/**
 * --- 天道酬勤 ---
 *
 * @author QiuShiju
 * @desc 封装的结果数据
 * --> 符合layui默认模板格式
 * {
 * "code": 0,
 * "msg": "",
 * "count": 1000,
 * "data": [{}, {}]
 * }
 */

@Data
@NoArgsConstructor
@AllArgsConstructor
@Component
public class ResultData {
    private int code;  // 状态码:200成功，其他都是失败
    private String msg;  // 提示信息
    private int count;  // 总记录数
    private Object data;  // 数据


    /**
     * 成功返回结果
     *
     * @return 成功的结果
     */
    public static ResultData ok() {
        ResultData resultData = new ResultData();
        resultData.setCode(200);
        resultData.setMsg("成功");
        return resultData;
    }

    /**
     * 成功返回结果
     *
     * @param data 返回的数据
     * @return 成功的结果
     */
    public static ResultData ok(Object data) {
        ResultData resultData = ok();
        resultData.setData(data);

        return resultData;
    }

    /**
     * 成功返回结果
     *
     * @param data  返回的数据
     * @param count 总记录数
     * @return 成功的结果
     */
    public static ResultData ok(Object data, int count) {
        ResultData resultData = ok();
        resultData.setData(data);
        resultData.setCount(count);
        return resultData;
    }

    /**
     * 失败返回结果
     *
     * @return 失败的结果
     */
    public static ResultData fail() {
        ResultData resultData = new ResultData();
        resultData.setCode(-1);
        resultData.setMsg("失败");
        return resultData;
    }

}
